package org.dromara.system.service;

import org.dromara.system.domain.bo.SysSocialBo;
import org.dromara.system.domain.vo.SysSocialVo;

import java.util.List;


/**
 * @Author 刘武贵
 * @Date 2024/8/15 22:00
 * @Description 功能描述：社会化关系Service接口
 */
public interface ISysSocialService {

    /**
     * 查询社会化关系
     *
     * @param id 社会化关系的唯一标识
     * @return 返回单条社会化关系数据封装在SysSocialVo对象中
     */
    SysSocialVo queryById(String id);

    /**
     * 授权列表
     *
     * @param bo 社会化关系的查询条件封装在SysSocialBo对象中
     * @return 返回符合查询条件的社会化关系列表，每条数据封装在SysSocialVo对象中
     */
    List<SysSocialVo> queryList(SysSocialBo bo);

    /**
     * 查询社会化关系列表
     *
     * @param userId 用户的唯一标识
     * @return 返回该用户所有社会化关系的列表，每条数据封装在SysSocialVo对象中
     */
    List<SysSocialVo> queryListByUserId(Long userId);

    /**
     * 新增授权关系
     *
     * @param bo 包含了新增授权关系数据的SysSocialBo对象
     * @return 新增操作的结果，成功返回true，失败返回false
     */
    Boolean insertByBo(SysSocialBo bo);

    /**
     * 更新社会化关系
     *
     * @param bo 包含了更新社会化关系数据的SysSocialBo对象
     * @return 更新操作的结果，成功返回true，失败返回false
     */
    Boolean updateByBo(SysSocialBo bo);

    /**
     * 删除社会化关系信息
     *
     * @param id 社会化关系的唯一标识
     * @return 删除操作的结果，成功返回true，失败返回false
     */
    Boolean deleteWithValidById(Long id);

    /**
     * 根据 authId 查询用户信息
     *
     * @param authId 认证id
     * @return 授权信息
     */
    List<SysSocialVo> selectByAuthId(String authId);


}
